LFMONITOR v5.0 PATCH NOTES FOR L10N
===================================

INTRODUCTION:

I play Horde on US-Blackrock (as Arcanedamage). Blackrock is one of the game's most populated realms, is over 75% Horde and has lots of arena/RBG PUGs, so finding a PvE PUG requires a powerful trade-channel filter. LFMonitor was the only such filter I could find, and it just wasn't doing the job. That's why I decided to become an LFMonitor developer and thoroughly overhaul the add-on's filtering logic. This meant equally comprehensive changes to the locale data structure.

Unlike previous versions, LFMonitor 5.0 uses 4 Bayesian-style classifiers to identify a message's general type (LF profession, LFW, LFM, LFG, WTB, WTS) and the instances, classes or professions it's likely to relate to. Unlike conventional Bayesian classifiers, they don't assume the categories are mutually exclusive. It also implements fuzzy word matching to provide a tolerance for typos.

FUZZY-MATCHING TABLES:

Instead of pattern matching, LFMonitor now uses case-insensitive approximate word matching (except for 1- and 2-letter words, which are ignored unless they match exactly). Thus, you no longer need to enter multiple slightly different spellings for the same word (e.g. "rogue" and "rouge"), and each pattern must now be one word. The pattern is:

table = {
  ["word1"] = strength,
  ["word2"] = strength,
  ...
  ["wordn"] = strength}

where strength is:
1 for a word that ALWAYS refers to this class / role / profession / raid / message type.
0.75 for a word that USUALLY refers to it, but not always
0.5 for a word that SOMETIMES refers to it, but has at least one other meaning that's about as common or more common in the same context. "os" for Obsidian Sanctum is an example: most players call it OS3D (or OS0D if for some reason they kill the drakes), and OS more often means off-spec ("LF1M DPS with tank OS" or "loot is MS>OS").
-1 for a word that DOESN'T refer to it, and is spelled very similarly to one that does. If -1 isn't enough to stop false matches, try -2.

To match a two-word term, add the two words separately and give them each half the strength they'd normally have.

Remember to include at least one word of the full name, or a word that approximately matches one, for anything that can be linked (raid lockouts, achievements, quests, professions). LFMonitor's filter only sees the text of a link and not what it points to.

You'll need to test some example messages to get the strengths right. What I did was to /join test and add Test to the list of custom monitoring channels, while also testing with the real trade channel.

The following variables in the locale file are fuzzy-matching tables:
-LFMonitor.jctxt, LFMonitor.enctxt, etc.
-LFMonitor.wtbtxt
-LFMonitor.wtstxt
-LFMonitor.lftxt
-LFMonitor.lfwtxt
-LFMonitor.DK_TXT, LFMonitor.DR_TXT, etc.
-patt in each entry in LFMonitor.RAIDS

NEW VARIABLES:

LFMonitor.DK, LFMonitor.DR etc.: The names of the character classes, which can no longer be stored in the _TXT tables.
LFMonitor.MELEE_TXT: Words that refer to melee DPS but not ranged.
LFMonitor.RANGED_TXT: Words that refer to ranged DPS but not melee.
LFMonitor.ALL_TXT: Words that a raid leader who needs tanks *and* healers *and* DPS is likely to use.
LFMonitor.WORD_PATTERN: Used with string.gmatch() to split a message into separate words and abbreviations. Should split on most punctuation, especially slashes and hyphens. Should not split on apostrophes if they're used in referring to arena brackets (e.g. 2's) or found in boss names (e.g. Occu'thar). Should match an abbreviation that includes numbers (e.g. ICC25H), but should not match numbers alone. Doesn't need to match terms in other languages, unless players posting in the target language commonly use them as loanwords.

CHANGED VARIABLES:

LFMonitor.RAIDTITLE: Now says "instances" instead of "raids" because the list now includes other types of instances.
LFMonitor.RAIDS: Now includes "Arenas" and "Rated Battlegrounds" entries. These are necessary to avoid false positives in LFM searches on servers with a lot of arena/RBG PUGs. Zul'Aman and Zul'Gurub have been updated to level 85. AQ10 is now recognized as an abbreviation for the Ruins of Ahn'Qiraj, since the player limit has been changed to 10, but AQ20 is also recognized since many players still use that term.
LFMonitor.TANK_TXT: Now also includes flag carriers, since this is usually considered the closest equivalent in PvP to the tank's role.
LFMonitor.alctxt: Now includes "potion", "elixir" and "transmutation" because messages often specifically refer to a Potion Master, Elixir Master or Transmutation Master.